package com.ftf.tp.blog.application.service.command;

import com.ftf.tp.blog.application.dto.ArticleCommentDTO;
import com.ftf.tp.blog.application.dto.ArticleCommentPageDTO;
import com.ftf.tp.blog.application.dto.ArticleCommentReplyPageDTO;
import com.ftf.tp.blog.application.vo.ArticleCommentVO;

import java.util.List;

/**
 * @author tanghao
 * @date 2022/7/28
 */
public interface CommentCommandService {

    /**
     * 评论文章
     *
     * @param blogComment 评论dto
     */
    void publishComment(ArticleCommentDTO blogComment);


    /**
     * 新增评论
     *
     * @param articleCommentDTO 评论实体
     */
    void addComment(ArticleCommentDTO articleCommentDTO);

    /**
     * 获取文章的所有评论 以及评论的回复(两条)
     *
     * @param articleCommentPageDTO 文章评论分页参数
     * @return 评论
     */
    List<ArticleCommentVO> getCommentByBlogId(ArticleCommentPageDTO articleCommentPageDTO);

    /**
     * 查看评论的所有回复
     *
     * @param articleCommentReplyPageDTO 文章回复分页参数
     * @return 回复列表
     */
    List<ArticleCommentVO> getReplyByCommentId(ArticleCommentReplyPageDTO articleCommentReplyPageDTO);

    /**
     * 删除当前评论 未完成
     *
     * @param commentId   评论id
     * @param commentType 类型
     */
    void deleteCommentById(Long commentId, Integer commentType);
}
